package br.ifrn.tads.poo.negocio;

import java.text.SimpleDateFormat;
import java.util.Date;

import br.ifrn.tads.poo.carro.*;
import br.ifrn.tads.poo.pessoa.*;

/*
 * Essa classe apenas guarda o código que instancia
 * e inicializa os objetos necessários para rodar o programa
 */



public class Loader {
		
	public static Locadora iniciarLocadora() {
		/*
		 * Inicia locadora
		 */
		Locadora locadora = new Locadora();
		
		Date data = new Date();
		Date data1 = new Date();
		Date data2 = new Date();
		Date data3 = new Date();		
		SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
		
		/*
		 * Inicia carros
		 */
		Carro uno = new CarroPopular();
		uno.setModelo("Uno");
		uno.setCor("Branco");
		uno.setPlaca("MYD-2345");
		
		Carro uno1 = new CarroPopular();
		uno1.setModelo("Uno");
		uno1.setCor("Branco");
		uno1.setPlaca("MYD-1234");
		
		Carro uno2 = new CarroPopular();
		uno2.setModelo("Uno");
		uno2.setCor("Branco");
		uno2.setPlaca("MYD-5678");
		
		Carro uno3 = new CarroPopular();
		uno3.setModelo("Uno");
		uno3.setCor("Branco");
		uno3.setPlaca("MYD-3456");
		
		Carro gol = new CarroPopular();
		gol.setModelo("Gol");
		gol.setCor("Vermelho");
		gol.setPlaca("OKB-3434");
		
		Carro gol1 = new CarroPopular();
		gol1.setModelo("Gol");
		gol1.setCor("Preto");
		gol1.setPlaca("OKB-1212");
		
		Carro gol2 = new CarroPopular();
		gol2.setModelo("Gol");
		gol2.setCor("Preto");
		gol2.setPlaca("OKB-9898");
		
		Carro gol3 = new CarroPopular();
		gol3.setModelo("Gol");
		gol3.setCor("Preto");
		gol3.setPlaca("OKB-5656");
		
		Carro fox = new CarroMedio();
		fox.setModelo("Fox");
		fox.setCor("Preto");
		fox.setPlaca("POO-2013");
		
		Carro punto = new CarroMedio();
		punto.setModelo("Punto");
		punto.setCor("Laranja");
		punto.setPlaca("MIB-6543");
		
		Carro kombi = new CarroUtilitario();
		kombi.setModelo("Kombi");
		kombi.setCor("Branco");
		kombi.setPlaca("OLD-1920");
		
		Carro topic = new CarroUtilitario();
		topic.setModelo("Topic");
		topic.setCor("Preto");
		topic.setPlaca("DSO-2012");
		
		Carro civic = new CarroLuxo();
		civic.setModelo("Civic");
		civic.setCor("Branco");
		civic.setPlaca("REI-9999");
		
		Carro corolla = new CarroLuxo();
		corolla.setModelo("Corolla");
		corolla.setCor("Prata");
		corolla.setPlaca("REI-5555");
		
		Carro fusion = new CarroLuxo();
		fusion.setModelo("Fusion");
		fusion.setCor("Preto");
		fusion.setPlaca("REI-0000");
		
		/*
		 * Adiciona carros à locadora
		 */
		locadora.adicionar(uno);
		locadora.adicionar(gol);
		locadora.adicionar(uno1);
		locadora.adicionar(gol1);
		locadora.adicionar(uno2);
		locadora.adicionar(gol2);
		locadora.adicionar(uno3);
		locadora.adicionar(gol3);
		locadora.adicionar(fox);
		locadora.adicionar(punto);
		locadora.adicionar(kombi);
		locadora.adicionar(topic);
		locadora.adicionar(civic);
		locadora.adicionar(corolla);
		locadora.adicionar(fusion);
		
		/* 
		 * Inicia funcionários
		 */
		Funcionario danilo = new Funcionario("Danilo Kleber");
		Funcionario joao = new Funcionario("João Cláudio");
		Funcionario placido = new Funcionario("Plácido Neto");
		
		/*
		 * Cadastra funcionários
		 */
		locadora.cadastrarFuncionario(danilo, "danilo", "123456");
		locadora.cadastrarFuncionario(joao, "joao", "qwerty");
		locadora.cadastrarFuncionario(placido, "placido", "senha");
		
		/*
		 * Inicia clientes
		 */
		ClientePessoaFisica cliente = new ClientePessoaFisica("Eduarda Oliveira Correia");
		cliente.setCpf("625.473.195-94");
		
		ClientePessoaFisica cliente1 = new ClientePessoaFisica("Melissa Dias Melo");
		cliente1.setCpf("885.532.686-40");
		
		ClientePessoaFisica cliente2 = new ClientePessoaFisica("Caio Araújo Rocha");
		cliente2.setCpf("524.206.842-65");
		
		ClientePessoaFisica cliente3 = new ClientePessoaFisica("Alex Gomes Oliveira");
		cliente3.setCpf("495.077.931-19");
		
		ClientePessoaFisica cliente4 = new ClientePessoaFisica("José Costa Pinto");
		cliente4.setCpf("153.258.785-65");

		ClientePessoaFisica cliente5 = new ClientePessoaFisica("Tiago Cavalcanti Azevedo");
		cliente5.setCpf("340.556.147-72");
		
		ClientePessoaFisica cliente6 = new ClientePessoaFisica("Livia Martins Melo");
		cliente6.setCpf("070.154.285-39");
		
		ClientePessoaFisica cliente7 = new ClientePessoaFisica("Davi Ribeiro Lima");
		cliente7.setCpf("451.950.167-98");
		
		ClientePessoaJuridica empresa = new ClientePessoaJuridica("Zedata Sistemas");
		empresa.setCnpj("63.978.130/0001-13");
		
		ClientePessoaJuridica empresa1 = new ClientePessoaJuridica("Faditos Moda Infantil");
		empresa1.setCnpj("31.831.014/0001-80");
		
		ClientePessoaJuridica empresa2 = new ClientePessoaJuridica("Restaurante Mujumag");
		empresa2.setCnpj("22.776.384/0001-71");
		
		ClientePessoaJuridica empresa3 = new ClientePessoaJuridica("BoxUp Embalagens");
		empresa3.setCnpj("96.746.784/0001-70");
		
		/*
		 * Cadastra clientes
		 */
		locadora.cadastrarCliente(cliente);
		locadora.cadastrarCliente(cliente1);
		locadora.cadastrarCliente(cliente2);
		locadora.cadastrarCliente(cliente3);
		locadora.cadastrarCliente(cliente4);
		locadora.cadastrarCliente(cliente5);
		locadora.cadastrarCliente(cliente6);
		locadora.cadastrarCliente(cliente7);
		locadora.cadastrarCliente(empresa);
		locadora.cadastrarCliente(empresa1);
		locadora.cadastrarCliente(empresa2);
		locadora.cadastrarCliente(empresa3);
				
		try {
			data = formatoData.parse("06/03/2014");
			data1 = formatoData.parse("08/03/2014");
			data2 = formatoData.parse("11/03/2014");
			data3 = formatoData.parse("14/03/2014");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		locadora.alugar(gol2, cliente, data);
		locadora.alugar(uno, empresa2, data1);
		locadora.alugar(fox, cliente4, data1);
		locadora.reservar(gol, cliente6, data2);
		locadora.reservar(fusion, empresa, data3);
		
		return locadora;
	}
			
}
